package com.sojson.entity.po;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.sojson.base.impl.BaseDto;
import com.sojson.enums.EActivityStatus;
import com.sojson.util.DateUtil;
import com.sojson.util.id.GUIDUtil;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiModelProperty.AccessMode;

/**
 * 优惠券发放活动表Bean
 * 
 * @author liu
 * @date 2021-03-24
 */
@ApiModel("优惠券发放活动表Bean")
public class Activity extends BaseDto {

    /**
     * 此文件由工具自动生成，手动添加内容请放至末尾
     */

    private static final long serialVersionUID = 1616573744456L;

    @ApiModelProperty("批次编号")
    private String batchNo;
    @ApiModelProperty("活动标题")
    private String activityName;
    @ApiModelProperty("缩略图")
    private String thumb;
    @ApiModelProperty("简单介绍")
    private String des;
    @ApiModelProperty("奖品类型(1:优惠券)")
    private Integer prizeType;
    @ApiModelProperty("领取方式(1:活动直接领取,2:助力领取)")
    private Integer getMethod;
    @ApiModelProperty("绑定优惠券的编号逗号拼接")
    private String bindCouponNo;
    @ApiModelProperty("参与次数限制(活动期间每个用户可参与多少次活动)")
    private Integer joinCount;
    @ApiModelProperty("是否开启安全防刷(开启自然人拦截,多个帐号同属一个身份证时,视为同一用户)")
    private Integer isSecurityPrinting;
    @ApiModelProperty("参与用户范围(1:所有用户可参加,2:特定用户可参加,3:某些用户可参加,4:某些用户不可参加)")
    private Integer scopeUser;
    @ApiModelProperty("参与用户编号")
    private String useUserNo;
    @ApiModelProperty("邀请助力次数")
    private Integer helpCount;
    @ApiModelProperty("活动开始时间")
    private Date startTime;
    @ApiModelProperty("活动结束时间")
    private Date endTime;
    @ApiModelProperty("状态(1:未发布,2:已发布,3:已暂停,4:已结束)")
    private Integer status;
    @ApiModelProperty("排序(越大越靠前)")
    private Integer sortNum;
    @ApiModelProperty("创建时间")
    private Date createdAt;
    @ApiModelProperty("更新时间")
    private Date updatedAt;
    @ApiModelProperty(value = "用户参与范围集合", accessMode = AccessMode.READ_ONLY)
    private List<String> userNos;
    /** 优惠券发放活动表集合 */
    private ArrayList<Integer> ids;
    /** 优惠券发放活动表集合 */
    private ArrayList<Activity> activitys;

    /**
     * 以上由工具自动生成，以下为手动添加
     */

       /**
        * Empty constructor
        */
    public Activity() {

    }

    /**
     * 此文件由工具自动生成，手动添加内容请放至末尾
     */

    /**
     * 获取批次编号
     * 
     * @return
     */
    public String getBatchNo() {
        return batchNo;
    }

    /**
     * 设置批次编号
     * 
     * @param batchNo
     */
    public void setBatchNo(String batchNo) {
        this.batchNo = batchNo;
    }

    /**
     * 获取 活动标题
     */
    public String getActivityName() {
        return activityName;
    }

    /**
     * 设置 活动标题
     */
    public void setActivityName(String activityName) {
        this.activityName = activityName;
    }

    /**
     * 获取 缩略图
     */
    public String getThumb() {
        return thumb;
    }

    /**
     * 设置 缩略图
     */
    public void setThumb(String thumb) {
        this.thumb = thumb;
    }

    /**
     * 获取 简单介绍
     */
    public String getDes() {
        return des;
    }

    /**
     * 设置 简单介绍
     */
    public void setDes(String des) {
        this.des = des;
    }

    /**
     * 获取 奖品类型(1:优惠券)
     */
    public Integer getPrizeType() {
        return prizeType;
    }

    /**
     * 设置 奖品类型(1:优惠券)
     */
    public void setPrizeType(Integer prizeType) {
        this.prizeType = prizeType;
    }

    /**
     * 获取 领取方式(1:活动直接领取,2:助力领取)
     */
    public Integer getGetMethod() {
        return getMethod;
    }

    /**
     * 设置 领取方式(1:活动直接领取,2:助力领取)
     */
    public void setGetMethod(Integer getMethod) {
        this.getMethod = getMethod;
    }

    /**
     * 获取 绑定优惠券的id逗号拼接
     */
    public String getBindCouponNo() {
        return bindCouponNo;
    }

    /**
     * 设置 绑定优惠券的id逗号拼接
     */
    public void setBindCouponNo(String bindCouponNo) {
        this.bindCouponNo = bindCouponNo;
    }

    /**
     * 获取 参与次数限制(活动期间每个用户可参与多少次活动)
     */
    public Integer getJoinCount() {
        return joinCount;
    }

    /**
     * 设置 参与次数限制(活动期间每个用户可参与多少次活动)
     */
    public void setJoinCount(Integer joinCount) {
        this.joinCount = joinCount;
    }

    /**
     * 获取 是否开启安全防刷(开启自然人拦截,多个帐号同属一个身份证时,视为同一用户)
     */
    public Integer getIsSecurityPrinting() {
        return isSecurityPrinting;
    }

    /**
     * 设置 是否开启安全防刷(开启自然人拦截,多个帐号同属一个身份证时,视为同一用户)
     */
    public void setIsSecurityPrinting(Integer isSecurityPrinting) {
        this.isSecurityPrinting = isSecurityPrinting;
    }

    /**
     * 获取参与用户范围(1:所有用户可参加,2:特定用户可参加,3:某些用户可参加,4:某些用户不可参加)
     * 
     * @return
     */
    public Integer getScopeUser() {
        return scopeUser;
    }

    /**
     * 设置参与用户范围(1:所有用户可参加,2:特定用户可参加,3:某些用户可参加,4:某些用户不可参加)
     * 
     * @param scopeUser
     */
    public void setScopeUser(Integer scopeUser) {
        this.scopeUser = scopeUser;
    }

    /**
     * 获取参与用户编号
     * 
     * @return
     */
    public String getUseUserNo() {
        return useUserNo;
    }

    /**
     * 设置参与用户编号
     * 
     * @param useUserNo
     */
    public void setUseUserNo(String useUserNo) {
        this.useUserNo = useUserNo;
    }

    /**
     * 获取 邀请助力次数
     */
    public Integer getHelpCount() {
        return helpCount;
    }

    /**
     * 设置 邀请助力次数
     */
    public void setHelpCount(Integer helpCount) {
        this.helpCount = helpCount;
    }

    /**
     * 获取 活动开始时间
     */
    public Date getStartTime() {
        return startTime;
    }

    /**
     * 设置 活动开始时间
     */
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    /**
     * 获取 活动结束时间
     */
    public Date getEndTime() {
        return endTime;
    }

    /**
     * 设置 活动结束时间
     */
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    /**
     * 获取 状态(1:未发布,2:已发布,3:已暂停,4:已结束)
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置 状态(1:未发布,2:已发布,3:已暂停,4:已结束)
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取 排序(越大越靠前)
     */
    public Integer getSortNum() {
        return sortNum;
    }

    /**
     * 设置 排序(越大越靠前)
     */
    public void setSortNum(Integer sortNum) {
        this.sortNum = sortNum;
    }

    /**
     * 获取 创建时间
     */
    public Date getCreatedAt() {
        return createdAt;
    }

    /**
     * 设置 创建时间
     */
    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    /**
     * 获取 更新时间
     */
    public Date getUpdatedAt() {
        return updatedAt;
    }

    /**
     * 设置 更新时间
     */
    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    /**
     * 获取用户参与范围集合
     * 
     * @return
     */
    public List<String> getUserNos() {
        return userNos;
    }

    /**
     * 设置用户参与范围集合
     * 
     * @param userNos
     */
    public void setUserNos(List<String> userNos) {
        this.userNos = userNos;
    }

    /**
     * 获取 优惠券发放活动表集合
     */
    public ArrayList<Integer> getIds() {
        return ids;
    }

    /**
     * 设置 优惠券发放活动表集合
     */
    public void setIds(ArrayList<Integer> ids) {
        this.ids = ids;
    }

    /**
     * 获取 优惠券发放活动表集合
     */
    public ArrayList<Activity> getActivitys() {
        return activitys;
    }

    /**
     * 设置 优惠券发放活动表集合
     */
    public void setActivitys(ArrayList<Activity> activitys) {
        this.activitys = activitys;
    }

    /**
     * 以上由工具自动生成，以下为手动添加
     */

    /**
     * 插入初始化
     */
    public void insertInit() {
        setNo(GUIDUtil.generateGuid());
        setBatchNo(GUIDUtil.generateGuid());
        setStatus(EActivityStatus.YES_PUBLISH.getCode());
        Date now = DateUtil.nowDate();
        setCreatedAt(now);
        setUpdatedAt(now);
    }

    /**
     * 更新初始化
     */
    public void updateInit() {
        Date now = DateUtil.nowDate();
        setUpdatedAt(now);
    }

    /**
     * 更新初始化
     */
    public void setUpdateNull() {
        setNo(null);
        setBatchNo(null);
        setStatus(null);
        setPrizeType(null);
        setGetMethod(null);
        setBindCouponNo(null);
        setStartTime(null);
        setEndTime(null);
    }

}